Cây hậu tố
Cây hậu tố

Cây hậu tố

Trong khoa học máy tính, một cây hậu tố là một cấu trúc dữ liệu để biểu diễn các hậu tố của một xâu ký tự sao cho có thể thực hiện nhanh chóng nhiều thao tác trên xâu.Cây hậu tố của xâu S {\displaystyle S} là một cây có cạnh được gắn nhãn là các xâu ký tự và mỗi hậu tố của S {\displaystyle S} tương ứng với chuỗi thu được bằng cách ghép tất cả các nhãn của một đường từ gốc đến lá. Do đó nó là cây cơ số (cụ thể hơn, nó là cây Patricia) của các hậu tố của S {\displaystyle S} .Việc xây dựng cây hậu tố của xâu S {\displaystyle S} sử dụng thời gian và bộ nhớ tuyến tính với độ dài của S {\displaystyle S} . Sau khi đã xây dựng xong cây, có thể thực hiện nhanh chóng nhiều thao tác, chẳng hạn như tìm xâu con trong S {\displaystyle S} , tìm xâu con với một số lượng lỗi cố định, tìm biểu thức chính quy v.v... Cây hậu tố cũng là một trong những lời giải tuyến tính đầu tiên của bài toán tìm xâu con chung dài nhất. Tuy làm tăng tốc độ các thao tác nhưng việc lưu trữ cây hậu tố thường đòi hỏi nhiều bộ nhớ hơn chỉ lưu trữ xâu ký tự.

Tài liệu tham khảo

WikiPedia: Cây hậu tố http://webhome.cs.uvic.ca/~mgbarsky/DIGEST_SEARCH http://code.google.com/p/patl/ http://www.zbh.uni-hamburg.de/staff/kurtz/papers/G... http://hkn.eecs.berkeley.edu/~dyoo/python/suffix_t... http://www.cs.rutgers.edu/~farach/pubs/Suffix.pdf http://www.cs.ucdavis.edu/~gusfield/strmat.html http://www.cise.ufl.edu/~sahni/dsaaj/enrich/c16/su... http://www.cs.helsinki.fi/group/suds/ http://www.cs.helsinki.fi/u/ukkonen/SuffixT1withFi... http://www.nist.gov/dads/HTML/suffixtree.html